#ifndef __T5LOS8051_H__
#define __T5LOS8051_H__

__sfr __at(0x80) P0;        /********PO口*******/
__sfr   __at(0x81) SP;          /********堆栈指针*******/
__sfr   __at(0x82) DPL;         /********DPTR数据指针*******/
__sfr   __at(0x83) DPH;         /********DPTR数据指针*******/
__sfr   __at(0x87) PCON;        /********.7 UART2波特率设置*******/
__sfr   __at(0x88) TCON;        /********T0 T1控制寄存器*******/

__sbit    __at(0x88 + 7) TF1;     /********T1中断触发*******/
__sbit    __at(0x88 + 6) TR1;
__sbit    __at(0x88 + 5) TF0;     /********T0中断触发*******/
__sbit    __at(0x88 + 4) TR0;
__sbit    __at(0x88 + 3) IE1;     /********外部中断1*******/
__sbit    __at(0x88 + 2) IT1;     /********外部中断1触发方式    0：低电平触发        1：下降沿触发*******/
__sbit    __at(0x88 + 1) IE0;     /********外部中断0*******/
__sbit    __at(0x88 + 0) IT0;     /********外部中断0触发方式    0：低电平触发        1：下降沿触发*******/

__sfr   __at(0x89) TMOD;        /********T0 T1模式选择,同8051*******/
__sfr   __at(0x8C) TH0;
__sfr   __at(0x8A) TL0;
__sfr   __at(0x8D) TH1;
__sfr   __at(0x8B) TL1;

__sfr   __at(0x8E) CKCON;       /********CPU运行*******/
__sfr   __at(0x90) P1;
__sfr   __at(0x93) DPC;         /********MOVX指令后，DPTR的变化模式    0：不变 1：+1  2：-1*******/
__sfr   __at(0x94) PAGESEL;     /********必须是0x01*******/
__sfr   __at(0x95) D_PAGESEL;   /********必须是0x02*******/

__sfr   __at(0x98) SCON0;       /********UART2控制接口，同8051*******/
__sbit    __at(0x98 + 1) TI0;
__sbit    __at(0x98 + 0) RI0;
__sfr   __at(0x99) SBUF0;       /********UART2收发数据接口*******/
__sfr   __at(0xBA) SREL0H;      /********设置波特率，当ADCON为0x80时*******/
__sfr   __at(0xAA) SREL0L;

__sfr   __at(0x9B) SCON1;       /********UART3控制接口*******/
__sfr   __at(0x9C) SBUF1;
__sfr   __at(0xBB) SREL1H;
__sfr   __at(0x9D) SREL1L;

__sfr   __at(0x9A) IEN2;        /********中断使能控制器SFR  .7~.1必须写0        .0 UART3中断使能控制位*******/
__sfr   __at(0xA0) P2;
__sfr   __at(0xA8) IEN0;        /********中断使能控制器0*******/
__sbit    __at(0xA8 + 7) EA;      /********中断总控制位*******/
__sbit    __at(0xA8 + 5) ET2;     /********定时器2中断控制位*******/
__sbit    __at(0xA8 + 4) ES0;     /********UART2*******/
__sbit    __at(0xA8 + 3) ET1;     /********T1*******/
__sbit    __at(0xA8 + 2) EX1;     /********外部中断1*******/
__sbit    __at(0xA8 + 1) ET0;     /********T0*******/
__sbit    __at(0xA8 + 0) EX0;     /********外部中断0*******/

__sfr   __at(0xA9) IP0;         /********中断优先级控制器0*******/
__sfr   __at(0xB0) P3;
__sfr   __at(0xB8) IEN1;        /********中断使能接受控制器******/
__sbit    __at(0xB8 + 5) ES3R;    /*****UART5接受中断使能控制位****/
__sbit    __at(0xB8 + 4) ES3T;    /*****UART5接受中断使能控制位****/
__sbit    __at(0xB8 + 3) ES2R;    /*****UART4接受中断使能控制位****/
__sbit    __at(0xB8 + 2) ES2T;    /*****UART4接受中断使能控制位****/
__sbit    __at(0xB8 + 1) ECAN;    /********CAN中断使能控制位******/

__sfr   __at(0xB9) IP1;         /********中断优先级控制器0*******/
__sfr   __at(0xBF) IRCON2;
__sfr   __at(0xC0) IRCON;
__sbit    __at(0xC0 + 6) TF2;    /********T2中断触发标志*******/
__sfr   __at(0xC8) T2CON;       /********T2控制寄存器********/
__sbit    __at(0xC8 + 0) TR2;    /***********T2使能***********/
__sfr   __at(0xCB) TRL2H;
__sfr   __at(0xCA) TRL2L;
__sfr   __at(0xCD) TH2;
__sfr   __at(0xCC) TL2;

__sfr   __at(0xD0) PSW;
__sbit    __at(0xD0 + 7) CY;
__sbit    __at(0xD0 + 6) AC;
__sbit    __at(0xD0 + 5) F0;
__sbit    __at(0xD0 + 4) RS1;
__sbit    __at(0xD0 + 3) RS0;
__sbit    __at(0xD0 + 2) OV;
__sbit    __at(0xD0 + 1) F1;
__sbit    __at(0xD0 + 0) P;
__sfr   __at(0xD8) ADCON;
__sfr   __at(0xE0) ACC;
__sfr   __at(0xF0) B;

/******硬件扩展定义*********/

/******DGUS变量存储器访问*********/
__sfr   __at(0xF8) RAMMODE;     /******DGUS变量存储器访问接口控制寄存器*********/
__sbit    __at(0xF8 + 7) APP_REQ;
__sbit    __at(0xF8 + 6) APP_EN;
__sbit    __at(0xF8 + 5) APP_RW;
__sbit    __at(0xF8 + 4) APP_ACK;
__sfr   __at(0xF1) ADR_H;
__sfr   __at(0xF2) ADR_M;
__sfr   __at(0xF3) ADR_L;
__sfr   __at(0xF4) ADR_INC;
__sfr   __at(0xFA) DATA3;
__sfr   __at(0xFB) DATA2;
__sfr   __at(0xFC) DATA1;
__sfr   __at(0xFD) DATA0;

//UART4
__sfr   __at(0x96) SCON2T;      /******UART4发送控制********/
__sfr   __at(0x97) SCON2R;      /******UART4接收控制*********/
__sfr   __at(0xD9) BODE2_DIV_H; /******波特率设置********/
__sfr   __at(0xE7) BODE2_DIV_L;
__sfr   __at(0x9E) SBUF2_TX;    /******UART4发送数据接口********/
__sfr   __at(0x9F) SBUF2_RX;    /******UART4接收数据接口*********/

//UART5
__sfr   __at(0xA7) SCON3T;
__sfr   __at(0xAB) SCON3R;
__sfr   __at(0xAE) BODE3_DIV_H;
__sfr   __at(0xAF) BODE3_DIV_L;
__sfr   __at(0xAC) SBUF3_TX;
__sfr   __at(0xAD) SBUF3_RX;

//CAN通信
__sfr   __at(0x8F) CAN_CR;
__sfr   __at(0x91) CAN_IR;
__sfr   __at(0xE8) CAN_ET;

//GPIO
__sfr   __at(0xB7) P0MDOUT;
__sfr   __at(0xBC) P1MDOUT;
__sfr   __at(0xBD) P2MDOUT;
__sfr   __at(0xBE) P3MDOUT;
__sfr   __at(0xC9) MUX_SEL;
__sfr   __at(0xF9) PORTDRV;     /******输出驱动强度*********/

//MAC&DIV
__sfr   __at(0xE5) MAC_MODE;
__sfr   __at(0xE6) DIV_MODE;

//SFR扩展接口
__sfr   __at(0xFE) EXADR;
__sfr   __at(0xFF) EXDATA;
#endif
